   /*
 *  NuestraInterfaz.java
 * 
 * Interfaz que presenta el protocolo de metodos a implementar en las clases de radios
 * 
 * 
 *  Universidad del Valle de Guatemala            Algoritmos y Estructura de Datos 
 *  Seccion 20
 *  Hoja de trabajo 1
 */

/**
 *
 * @author Manuel Alejandro Rojas    Carne 10104
 * 
 */
public interface NuestraInterfaz {
        
    /**
     * Metodo que permite realizar el cambio en el atributo estado entre ON y OFF, el atributo estacion entre FM y --
     * el atributo emisora entre 87.9 y -- , ademas de devolver
     * true si el estado es ON y devolver False si el estado es OFF
     * @return un valor booleano que permite determinar si se encuentra apagado o encendido
     */
    public boolean power();
	
    /**
     * Metodo cambio que permite el cambio de AM / FM o FM/AM en la radio.
     * Metodo que permite cambiar de AM a FM o viceversa, esto se realiza atravez de una comparacion con el estado
     * de la estacion si es FM o AM.
     * @return  un valor booleano para determinar el cambio
     */
    public boolean cambio();
	
    /**
     * Se determina si se encuentra en AM o FM asi aumentar en multiplos de 10 o 0.2 respectivamente
     * asi como si se encuentra en el limite superior permite iniciar de nuevo con la emisora inicial ya sea
     * en FM  o AM.
     */
    public void fw();
	
        /**
         * funcionamiento similar al metodo fw, con la diferencia que este metodo disminuye en multiplos de 10 o 0.2 
         * si es AM o FM respectivamente y si se encuentra en el limite inferior la emisora regresa al valor del limite
         * superior de AM o FM.
         */
    public void bw();
	
        /**
         *Permite guardar en memoria, que es una matriz de 12x2, la emisora que se desee sin importar si es FM o AM
         * las guarda en la misma memoria
         * @param boton permite seleccionar en que memoria guardar
         */
    public void store(int boton);   // guardar la estacion en el boton
	
        /**
         *Permite seleccionar una memoria de la matriz para volver a una emisora guardada con anterioridad
         * si no se guardo una emisora se regresa a la emisora de FM 87.9
         * @param botons permite seleccionar la memoria que se desea escuchar.
         */
    public void select(int botons);  // poner la estacion guardada en el boton elegido
        
    /**
     * 
     * Metodo salir, libre para cualquier uso
     */
    public void salir();
	
    /**
     *  Metodo que devuelve un string el que posee los atributos estado, estacion y emisora actuales. que al ser llamado
     * con un println permite mostrar el estado general del radio.
     * @return devuelve un string que se recomienda sea el estado de la radio actual.
     */
    public String toString();
}
